Workshop
;Datei       : listing7.asm
;Beschreibung: Ein Bild wird angezeigt.
;Autor       : Enrico Bauermeister
;Datum       : 17.12.1997
;Assembler   : TFA AsmOne v1.30
;======================================

;Interrupts sperren - Betriebssystem ausschalten
;-----------------------------------------------
 move.w   #$4000,$dff09a

;Sprites ausschalten (sonst stören die nur)
;------------------------------------------
 move.w   #$0020,$dff096

;Bitplanepointer auf unser Bild zeigen lassen
;--------------------------------------------
 move.l   #picture,d0        ;Adresse des Bildes nach D0
 lea      bitplanepointer,a1 ;Adresse der Bitplanepointer nach A1
 moveq    #4,d1              ;Anzahl der Bitplanes -1 (hier sind es 5)
pointbitplanes:
 move.w   d0,6(a1)           ;Low-Word kopieren
 swap     d0                 ;Words in d0 vertauschen
 move.w   d0,2(a1)           ;High-Word kopieren
 swap     d0                 ;Words in d0 wieder vertauschen
 add.l    #40*256,d0         ;10240 zu D0 dazu zählen (auf nächste
                             ;Bitplane zeigen)
 addq.w   #8,a1              ;auf Adresse des nächsten Bitplanepointers
                             ;zeigen
 dbra     d1,pointbitplanes  ;Schleife zum eintragen der Adressen in
                             ;die Bitplanepointer

;Copperliste aktivieren
;----------------------
 move.l   #Copperliste,$dff084

;Warten auf Rasterstrahl (eine 1/50 Sekunde)
;-------------------------------------------
wait:
 move.l   $dff004,d0
 and.l    #$fff00,d0
 cmp.l    #$00003000,d0
 bne.s    wait

;Linke Maustaste gedrückt ?
;--------------------------
 btst     #6,$bfe001
 bne.s    wait

;Sprites wieder einschalten
;--------------------------
 move.w   #$8020,$dff096

;Interrupts wieder erlauben
;--------------------------
 move.w   #$c000,$dff09a

;Programmende
;------------
 moveq    #0,d0
 rts

;Copperliste
;-----------
 SECTION Cl,CODE_C
Copperliste:
 dc.w     $008e,$2c81  ;DIWSTRT
 dc.w     $0090,$2cc1  ;DIWSTOP
 dc.w     $0092,$0038  ;DDFSTRT
 dc.w     $0094,$00d0  ;DDFSTOP
 dc.w     $0100,$5200  ;BPLCON0
 dc.w     $0108,$0000  ;BPL1MOD
 dc.w     $010a,$0000  ;BPL2MOD
bitplanepointer:
 dc.w     $00e0,$0000  ;BPL1PTH
 dc.w     $00e2,$0000  ;BPL1PTL
 dc.w     $00e4,$0000  ;BPL2PTH
 dc.w     $00e6,$0000  ;BPL2PTL
 dc.w     $00e8,$0000  ;BPL3PTH
 dc.w     $00ea,$0000  ;BPL3PTL
 dc.w     $00ec,$0000  ;BPL4PTH
 dc.w     $00ee,$0000  ;BPL4PTL
 dc.w     $00f0,$0000  ;BPL5PTH
 dc.w     $00f2,$0000  ;BPL5PTL
;hier setzt ihr eure Farbpalette aus ArtPRO ein
;        | |
;        | |
;         /

;        / 
;        | | 
;        | |
 dc.w     $ffff,$fffe  ;Copperlistenende

;unser Bild
;----------
picture:
 incbin   "bild.raw" ;statt "bild.raw" setzt ihr den Dateinamen
                     ;eurer RAW-Datei ein
 END

Zurück zum Programmierkurs